﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace SistemaGO_Library.Entidades.Pedido
{
    class CadastroPedido
    {
        private IRepositorioPedido pedidos;

        public CadastroPedido(IRepositorioPedido repPed) {
            this.pedidos = repPed;
        }

        public void inserirPedido(Pedido ped) {
            if (ped != null && !pedidos.existePedido(ped.Pedido_cod)) {
                pedidos.inserirPedido(ped);
            } else {
                throw new Exception("Pedido Já Existente ou Nulo");
            }
        }

        public Pedido buscarPedido(int cod) {
            Pedido ped = new Pedido();
            ped = null;
            if (pedidos.existePedido(cod)) {
                ped = pedidos.buscarPedido(cod);
            } else {
                throw new Exception("Pedido Não Encontrado");
            }
            return ped;
        }

        public void alterarPedido(int cod, Pedido novoPedido) {
            if (pedidos.existePedido(cod)) {
                pedidos.alterarPedido(cod, novoPedido);
            } else {
                throw new Exception("Erro ao alterar pedido");
            }
        }

        public void excluirPedido(int cod) {
            if (cod < 0) {
                throw new Exception("Erro ao excluir pedido");
            } else {
                pedidos.excluirPedido(cod);
            }
        }

        public bool validarPedido(int cod_ocorrencia) {
            return pedidos.validarPedido(cod_ocorrencia);
        }

        public int pedidoDaOcorrencia(int ocorrencia_cod) {
            return pedidos.pedidoDaOcorrencia(ocorrencia_cod);
        }

        public int buscarCodigoPedido() {
            return pedidos.buscarCodigoPedido();
        }

        public void mudarSituacao(string newSituacao, int cod) {
            pedidos.mudarSituacao(newSituacao, cod);
        }
    }
}
